﻿using System;
using System.Data;
using LLS.DataModel.Core;

[TableAttribute(Name = "Users")]
public class DMOUser : DMOBase
{
    #region Enumerators

    public enum UserType
    {
        Common = 1,
        AccessGroup = 2,
        Administrator = 3
    }

    #endregion

    #region Properties

    [ColumnAttribute(Name = "UserId", Type = DbType.Int64, Size = 8, PrimaryKey = true, Identity= true)]
    public Int64? Id { get; set; }

    [ColumnAttribute(Name = "Name", Type = DbType.String, Size = 50)]
    public string Name { get; set; }

    [ColumnAttribute(Name = "LastName", Type = DbType.String, Size = 50)]
    public string LastName { get; set; }

    [ColumnAttribute(Name = "Email", Type = DbType.String, Size = 100)]
    public string Email { get; set; }

    [ColumnAttribute(Name = "Account", Type = DbType.String, Size = 20)]
    public string Account { get; set; }

    [ColumnAttribute(Name = "Password", Type = DbType.String, Size = 20)]
    public string Password { get; set; }

    [ColumnAttribute(Name = "Active", Type = DbType.Boolean, Size = 1)]
    public bool? Active { get; set; }

    [ColumnAttribute(Name = "GroupId", Type = DbType.Int64, Size = 8)]
    public Int64? GroupId { get; set; }

    [ColumnAttribute(Name = "CreationDate", Type = DbType.DateTime, Size = 8)]
    public DateTime? CreationDate { get; set; }

    [ColumnAttribute(Name = "CreationUser", Type = DbType.String, Size = 20)]
    public string CreationUser { get; set; }

    [ColumnAttribute(Name = "ModificationDate", Type = DbType.DateTime, Size = 8)]
    public DateTime? ModificationDate { get; set; }

    [ColumnAttribute(Name = "ModificationUser", Type = DbType.String, Size = 20)]
    public string ModificationUser { get; set; }

    [ColumnAttribute(Name = "UserType", Type = DbType.Int32, Size = 4)]
    public UserType? Type { get; set; }

    #endregion
}